perm filename PINTRP.SRC[PNT,HE] blob sn#492459 filedate 1980-01-24 generic text, type T, neo UTF8
  1) PINTRP.PAL[PNT,HE] and 2) PINTRP.PAL[TMP,MSM]	1-24-80 17:19	pages 1,1

**** File 1) PINTRP.PAL[PNT,HE]/1P/16L
1)	C00051 00014	 supplementary functions: uparrow,dwnarrow,alpha,dollar,swap,vneg,vsmul,ftof
1)	C00055 00015	 functions: sqrt,sin,cos,asin,acos,tan,atan2,log,exp
1)	C00056 00016	 armreach- can arm reach here?
1)	C00058 00017	 procedure handling: GTBLK
1)	C00060 00018	 more stack ops: gtint,gvals,chngs
1)	C00062 00019	 components of data types: CHCMP,GTCMP
1)	C00065 00020	 signal and wait
1)	C00066 00021	 return from POINTY : pdone 
1)	C00067 ENDMK
1)	C⊗;
**** File 2) PINTRP.PAL[TMP,MSM]/1P/16L
2)	C00050 00014	 supplementary functions: uparrow,dwnarrow,alpha,dollar,swap,vneg,vsmul,ftof
2)	C00054 00015	 functions: sqrt,sin,cos,asin,acos,tan,atan2,log,exp
2)	C00055 00016	 armreach- can arm reach here?
2)	C00057 00017	 procedure handling: GTBLK
2)	C00059 00018	 more stack ops: gtint,gvals,chngs
2)	C00061 00019	 components of data types: CHCMP,GTCMP
2)	C00064 00020	 signal and wait
2)	C00065 00021	 return from POINTY : pdone 
2)	C00066 ENDMK
2)	C⊗;
***************


**** File 1) PINTRP.PAL[PNT,HE]/13P/3L
1)		JMP	MOVST3		; used to be MOVST2
1)	RTADRIVE:			; absolute drive
1)		MOV	LRTADRIVE,R2
1)		JMP	MOVST3		; used to be MOVST2
1)	RTDDRIVE:			; relative drive
1)		MOV	LRTDDRIVE,R2
1)		JMP	MOVST3		; used to be MOVST2
1)	RCENTER:
1)		MOV	LRCENTER,R2
1)		JMP	MOVST3		; used to be MOVST2
1)	MOVST3:
1)		MOV	#7,R0		; get a block to set up stuff for move statement
1)		JSR	PC,GTFREE
1)		PUSH	<R0>		; -(SP)←start of block
1)		PUSH	<IPC(R4)>	; -(SP)←IPC
**** File 2) PINTRP.PAL[TMP,MSM]/13P/3L
2)		JMP	MOVST3
2)	RTADRIVE:			; absolute drive
2)		MOV	LRTADRIVE,R2
2)		JMP	MOVST3
2)	RTDDRIVE:			; relative drive
2)		MOV	LRTDDRIVE,R2
  1) PINTRP.PAL[PNT,HE] and 2) PINTRP.PAL[TMP,MSM]	1-24-80 17:19	pages 13,13

2)		JMP	MOVST3
2)	RCENTER:
2)		MOV	LRCENTER,R2
2)		JMP	MOVST3
2)	COMMENT	⊗ Since addresses of pcode in POINTY are relative, this routine
2)		fills up a temporary block of pcode in a form digestable to
2)		movsta, which it then jumps to
2)		Dont mess up R2 in this routine!
2)		⊗;
2)	MOVST3:
2)		PUSH	<IPC(R4)>	; -(SP)←IPC
***************


**** File 1) PINTRP.PAL[PNT,HE]/13P/24L
1)		ADD	(SP),R1		; get absolute address of coef list
1)		MOV	R1,(R0)+	; 1st word after the move command
1)		FETCH	<(R0)+>		; mechanism word passed thro unchanged
1)		FETCH	<(R0)+>		; error bits passed through unchanged
**** File 2) PINTRP.PAL[TMP,MSM]/13P/27L
2)		ADD	R1,(SP)		; get absolute address of coef list
2)		FETCH	<R1>		; R1←mechanism word
2)		MOV	R1,R0
2)		JSR	PC,@LMECHNM	; Get bit position
2)		DEC	R0
2)		ASL	R0		; Get offset
2)		MOV	ABLK(R0),R0	; Get address of buffer
2)		POP	<(R0)+>		; address of coef list
2)		MOV	R1,(R0)+	; mechanism word passed thro unchanged
2)		FETCH	<(R0)+>		; error bits passed through unchanged
***************


**** File 1) PINTRP.PAL[PNT,HE]/13P/40L
1)		JSR	PC,MOVSTA	; let AL handle this
1)		POP	<R0>		; now we can release the block
1)		JSR	PC,RLFREE	; release the block
1)		RTS	PC		; IPC will be handled by the rest of the code
1)	COMMENT ⊗	used to return numbers for move
1)		also uncomment pg 19 ln 99 of interp.pal
1)	MOVST2:	MOV	#XMOVE,@INTPTR	;code for move
1)		MOV	INTPTR,SVPTR	;save the current pointer
1)		ADD	#2,INTPTR	;increment pointer
1)		MOV	INTPTR,-(SP)	;save the pointer
1)		CLR	RPFLAG		;clear the retry flag
1)		JSR	PC,MOVSTA	;perform the motion
1)		TST	RPFLAG		;did we go through a retry?
1)		BNE	2$		;yes, we did
  1) PINTRP.PAL[PNT,HE] and 2) PINTRP.PAL[TMP,MSM]	1-24-80 17:19	pages 13,13

1)		CMP	INTPTR,(SP)+	;no, satisfactory move(check if move incremented
1)					;pointers
1)		BNE	1$		;yes, don't add anything
1)		CLR	@INTPTR		;no, clear next two words
1)		ADD	#2,INTPTR
1)		CLR	@INTPTR
1)		ADD	#2,INTPTR
1)	1$:	RTS	PC		;return
1)	2$:	MOV	SVPTR,INTPTR	;we went through a retry, back up
1)		TST	(SP)+		;pop the stack
1)		RTS	PC
1)	⊗ ;
1)	DATA
**** File 2) PINTRP.PAL[TMP,MSM]/13P/49L
2)		JMP	MOVSTA		; let AL handle this and return
2)	DATA
2)	YRBLK:	.BLKW	7		; block for yellow arm
2)	YHBLK:	.BLKW	7		; block for yellow hand
2)	BRBLK:	.BLKW	7		; block to set up stuff for blue arm
2)	BHBLK:	.BLKW	7		; block for blue hand
2)	VBLK:	.BLKW	7		; block for vise
2)	SBLK:	.BLKW	7		; block for screwdriver
2)	ABLK:	.WORD	YRBLK,YHBLK,BRBLK,BHBLK,VBLK,SBLK
2)	CODE
2)	DATA
***************